
#include <iostream>
#include "util.hpp"
#include "data.hpp"
#include "server.hpp"


void Test_FileUtil()
{
    vod_ns::FileUtil("./www").CreateDirectory();
    if (vod_ns::FileUtil("./www/index.html").Exist())
    {
        std::cout << "haha" << std::endl;
    }
    vod_ns::FileUtil("./www/index.html").SetContent("<html></html>");
    std::string body;
    vod_ns::FileUtil("./www/index.html").GetContent(&body);
    std::cout << "File size: " << vod_ns::FileUtil("./www/index.html").Size() << std::endl;
    std::cout << "Body: " << std::endl << body << std::endl;
    if (vod_ns::FileUtil("./www/index.html").Exist())
    {
        std::cout << "haha" << std::endl;
    }
}

void Test_JsonUtil()
{
    Json::Value val;
    val["姓名"] = "李四";
    val["性别"] = "男";
    val["年龄"] = 19;
    val["成绩"].append(66.33);
    val["成绩"].append(73.21);
    val["成绩"].append(96.48);
    std::string body;
    vod_ns::JsonUtil::Serialize(val, &body);
    std::cout << body << std::endl;

    Json::Value stu;
    vod_ns::JsonUtil::Deserialize(body, &stu);
    std::cout << "姓名：" << stu["姓名"].asString() << std::endl;
    std::cout << "性别：" << stu["性别"].asString() << std::endl;
    std::cout << "年龄：" << stu["年龄"].asInt() << std::endl;
    std::cout << "成绩：[ " << stu["成绩"][0].asFloat() << ", " << stu["成绩"][1].asFloat() << ", " << stu["成绩"][2].asFloat() << " ]" << std::endl;
}

void Test_Data()
{
    vod_ns::TableVideo tb_video;
    Json::Value video;
    // video["name"] = "大奉打更人（新）"; 
    // video["info"] = "尔食尔禄，民脂民膏，下民易虐，上天难欺~";
    // video["video"] = "/video/BeaterOfFeng.mp4";
    // video["image"] = "/video/BeaterOfFeng.jpg";
    // tb_video.Insert(video);
    // tb_video.Update(2, video);
    // tb_video.SelectAll(&video);
    // tb_video.SelectOne(2, &video);
    // tb_video.SelectLike("梦", &video);

    // std::string body;
    // vod_ns::JsonUtil::Serialize(video, &body);
    // std::cout << body << std::endl;
    tb_video.Delete(1);
}

void Test_Server()
{
    vod_ns::Server server(8888);
    server.RunModule();
}

int main()
{
    // Test_FileUtil();
    // Test_JsonUtil();
    // Test_Data();
    Test_Server();
    return 0;
}

